package interfaceGraphique;


import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 * Permet de renseigner le nom du fichier de sortie.
 * @author nicolas rault et matthieu allon
 *
 */
public class FenFichierTexte extends JDialog implements ActionListener
{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JLabel nbTache;
	private JTextField textFichier;
	private JButton valider;
	private JButton annuler;
	private static FenFichierTexte singletonFenFichierTexte;
	private GridLayout border;
	private String nomFichier;
	
	/**
	 * Constructeur de la fenetre
	 */
	private FenFichierTexte()
	{
		this.setTitle("Choix du nom du fichier texte");
		this.setSize(650,120);
		this.setLocationRelativeTo(this.getParent());
		this.setModal(true);
		JPanel pan = new JPanel();
		border = new GridLayout(2,2);
		pan.setLayout(border);
		this.add(pan);
		
		//Creation des differents Label et TextField ou ComboBox associés
		nbTache = new JLabel("Nom du fichier de sortie (sans l'extension) :");
		pan.add(nbTache);
		textFichier = new JTextField();
		pan.add(textFichier);
		
		
		valider = new JButton("Valider");
		pan.add(valider);
		valider.addActionListener(this);
		
		annuler = new JButton("Annuler");
		pan.add(annuler);
		annuler.addActionListener(this);
	}
	
	/**
	 * Permet d'autoriser une seule creation de la fenetre FenFichierTexte.
	 * @return la fenetre FenFichierTexte
	 */
	public static FenFichierTexte getInstance()
	{
		if (singletonFenFichierTexte == null) 
		{
			singletonFenFichierTexte = new FenFichierTexte();
		}
		return singletonFenFichierTexte;
	}
	
	/**
	 * Permet de recuperer le nom du fichier de sortie
	 * @return le nom du fichier de sortie
	 */
	public String getNomFichier()
	{
		return nomFichier;
	}
	
	/**
	 * Permet d'assigner une action aux differents evenements survenus sur la fenetre.
	 * @param e evenement recupere par la fenetre
	 */
	public void actionPerformed(ActionEvent e) 
	{
		String bouton = e.getActionCommand();
		if(bouton.equals("Valider"))
		{
			nomFichier = textFichier.getText();
			textFichier.setText("");
		}
		this.setVisible(false);
		Accueil accueil = Accueil.getInstance();
		accueil.genTache();
	}

}
